Site cover image

Site icon imageSen(Qian)’s Memo

This website is Donglin Qian (Torin Sen)’s memo, especially about machine learning papers and competitive programming.

2023-IEEE-Dual Modality Prompt Tuning for Vision-Language Pre-Trained Model

https://arxiv.org/abs/2208.08340

Introduction

マルチモーダルのやつ。画像について、文字で○○してとNLPに解析させていくように、両方のタスクを使う。

CLIPという既存手法は、cosine類似度で画像とテキストがどれだけ似ているかを、比較行列を作って判別する。これがマルチモーダルで一番よく使われているもの。

LLMをうまく訓練してそれでいろんなタスク=下流タスクをうまく行わせるのが難点であり、解決法の1つとしてはPrompt Engineeringであった。

  • Image Class Tokenとは、生成するクラスを指示する情報。
  • Image Embeddingとは、画像を埋め込み表現にしたもの。
  • Visual Promptとは、似てそうな画像の情報?書いてないんだよな。

Method

Image in a image block

上の図のModuleはCAVPTというモジュールで、目標はTransformerに入れるいい感じのVisual+Text Promptを合わせたものを作りたい。

  1. Vision Promptは左側で、key, valueを提供。
    1. ICLSはImage Class Tokenである。
  2. Text Promptは右側で、queryを提供。
    1. 与えられたBatchに合致するだろう確率高いもの上位KnK_n個選択されている。Text Promptはクラス(「犬」、「猫」etc)のembeddingと、Text Promptのembeddingそのものである。
    2. Text Promptは、自動で生成したEmbedding。クラスの説明文っぽいEmbeddingを人間が考えるのはあほらしいじゃないですか?
  3. Cross Attentionした後にLayer Normalizationをする。右側はresnetの要領で、text promptから直接入れたものも加算。すると、各Visual Promptにtext promptを付加したのがClass-Aware Visual Promptであり、モジュールが出力するもの
  4. Cross Attentionしたものの左側はLayer Normalizationだけして、ひとまずここで正解ラベルとの損失を計算する。そして、ここでBack Propagationを行う対象の1つ。
    1. たぶん、CLSでまずCross-Attentionがいいものになるように覚えさせたいから、浅い層でもう損失を計算している早めにCross-Attentionの学習をさせて、モジュールが出力するものを良くする。その結果Transformerの学習を良くしている

Image in a image block

こちらの流れは本筋。

  1. まずTransformerにVisual Prompt, Image Embedding, Image Class Tokenを入れて埋め込み表演を生成する。
  2. そこから、Text Promptとの合わせたものを先ほどのCAVPTから得て、Transformerを何層か繰り返す。
    1. CAVPTの訓練には、先ほども言うようにTopKnK_nのクラスを使っているが、最終的な比較は全部のクラスとやっている。
  3. 最後に得たImage FeatureでText Encoderと比較学習を行う。